{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# livelossplot example: 2d prediction maps\n",
    "\n",
    "Last update: `livelossplot 0.5.0`. For code and documentation, see [livelossplot GitHub repository](https://github.com/stared/livelossplot).\n",
    "\n",
    "<a href=\"https://colab.research.google.com/github/stared/livelossplot/blob/master/examples/2d_prediction_maps.ipynb\" target=\"_parent\">\n",
    "    <img src=\"https://colab.research.google.com/assets/colab-badge.svg\"/>\n",
    "</a>\n",
    "\n",
    "Inspirations: \n",
    "\n",
    "* [Plot classifier comparison - scikit-learn](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html)\n",
    "* [TensorFlow playground](https://playground.tensorflow.org/)\n",
    "* [Which Machine Learning algorithm are you?](https://github.com/stared/which-ml-are-you)\n",
    "\n",
    "Take a note that is feature is experimental as of` 0.4.1`. API changes in `0.5.0`.\n",
    "\n",
    "In this case it uses PyTorch, but can be attached to other things. You need to use a different `predict` method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install livelossplot --quiet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "from sklearn import datasets\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "import torch\n",
    "from torch import nn, optim\n",
    "from torch.utils.data import TensorDataset, DataLoader\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.colors import ListedColormap\n",
    "\n",
    "from livelossplot import PlotLosses\n",
    "from livelossplot.outputs import matplotlib_subplots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "# try with make_moons\n",
    "X, y = datasets.make_circles(noise=0.2, factor=0.5, random_state=1)\n",
    "X_train, X_test, y_train, y_test = \\\n",
    "    train_test_split(X, y, test_size=.4, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<matplotlib.collections.PathCollection at 0x7f5140054b38>"
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot them\n",
    "cm_bright = ListedColormap(['#FF0000', '#0000FF'])\n",
    "plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cm_bright)\n",
    "plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cm_bright, alpha=0.3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "# PyTorch technicalities - loading and trainin\n",
    "dataloaders = {\n",
    "    'train':\n",
    "    DataLoader(TensorDataset(torch.from_numpy(X_train).float(), torch.from_numpy(y_train).long()),\n",
    "               batch_size=32,\n",
    "               shuffle=True, num_workers=0),\n",
    "    'validation': \n",
    "    DataLoader(TensorDataset(torch.from_numpy(X_test).float(), torch.from_numpy(y_test).long()),\n",
    "               batch_size=32,\n",
    "               shuffle=False, num_workers=0)\n",
    "}\n",
    "\n",
    "device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\n",
    "\n",
    "def train_model(model, criterion, optimizer, num_epochs=10,\n",
    "                liveloss=PlotLosses()):\n",
    "    model = model.to(device)\n",
    "    \n",
    "    for epoch in range(num_epochs):\n",
    "        logs = {}\n",
    "        for phase in ['train', 'validation']:\n",
    "            if phase == 'train':\n",
    "                model.train()\n",
    "            else:\n",
    "                model.eval()\n",
    "\n",
    "            running_loss = 0.0\n",
    "            running_corrects = 0\n",
    "\n",
    "            for inputs, labels in dataloaders[phase]:\n",
    "                inputs = inputs.to(device)\n",
    "                labels = labels.to(device)\n",
    "\n",
    "                outputs = model(inputs)\n",
    "                loss = criterion(outputs, labels)\n",
    "\n",
    "                if phase == 'train':\n",
    "                    optimizer.zero_grad()\n",
    "                    loss.backward()\n",
    "                    optimizer.step()\n",
    "\n",
    "                _, preds = torch.max(outputs, 1)\n",
    "                running_loss += loss.item() * inputs.size(0)\n",
    "                running_corrects += (preds == labels.data).sum().item()\n",
    "\n",
    "            epoch_loss = running_loss / len(dataloaders[phase].dataset)\n",
    "            epoch_acc = running_corrects / len(dataloaders[phase].dataset)\n",
    "            \n",
    "            prefix = ''\n",
    "            if phase == 'validation':\n",
    "                prefix = 'val_'\n",
    "\n",
    "            logs[prefix + 'log loss'] = epoch_loss\n",
    "            logs[prefix + 'accuracy'] = epoch_acc\n",
    "        \n",
    "        liveloss.update(logs)\n",
    "        liveloss.send()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "# an old-school neural network: a multi-layer perceptron\n",
    "\n",
    "class MLP(nn.Module):\n",
    "    def __init__(self, hidden_size=3, activation=nn.ReLU()):\n",
    "        super().__init__()\n",
    "\n",
    "        self.fc = nn.Sequential(\n",
    "            nn.Linear(2, hidden_size),\n",
    "            activation,\n",
    "            nn.Linear(hidden_size, 2)\n",
    "        )\n",
    "    \n",
    "    def forward(self, x):\n",
    "        x = self.fc(x)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = MLP(6)\n",
    "\n",
    "plot2d = matplotlib_subplots.Plot2d(model, X_train, y_train,\n",
    "                                    valiation_data=(X_test, y_test),\n",
    "                                    margin=0.2, h=0.02, device=device)\n",
    "plot2d.predict = plot2d._predict_pytorch\n",
    "liveloss = PlotLosses(outputs=[plot2d])\n",
    "\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = optim.Adam(model.parameters(), lr=1e-1)\n",
    "\n",
    "train_model(model, criterion, optimizer, num_epochs=30,\n",
    "            liveloss=liveloss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = MLP(3, activation=nn.Sigmoid())\n",
    "\n",
    "plot2d = matplotlib_subplots.Plot2d(model, X_train, y_train,\n",
    "                                    valiation_data=(X_test, y_test),\n",
    "                                    margin=0.2, h=0.02, device=device)\n",
    "plot2d.predict = plot2d._predict_pytorch\n",
    "liveloss = PlotLosses(outputs=[plot2d])\n",
    "\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = optim.Adam(model.parameters(), lr=1e-1)\n",
    "\n",
    "train_model(model, criterion, optimizer, num_epochs=100,\n",
    "            liveloss=liveloss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.4"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "source": [],
    "metadata": {
     "collapsed": false
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}